package com.hibase.core.page.service.pagemenucontent;


import com.github.pagehelper.PageInfo;
import com.hibase.common.exception.HibaseException;
import com.hibase.core.mybatis.service.BaseService;
import com.hibase.core.page.entity.menuxml.MenuXmlVO;
import com.hibase.core.page.entity.pagemenuContent.PageMenuContent;
import com.hibase.core.page.entity.pagemenuContent.vo.PageMenuContentSearchVO;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 菜单配置内容表 服务类
 * </p>
 *
 * @author junk
 * @since 2021-03-31
 */
@Transactional(readOnly = true, rollbackFor = Exception.class)
public interface PageMenuContentService extends BaseService<PageMenuContent> {

    /**
     * 查询菜单配置内容表列表
     *
     * @param searchVO
     * @return
     */
    PageInfo<PageMenuContent> selectPageMenuContentList(PageMenuContentSearchVO searchVO);

    /**
     * 改变菜单配置内容表记录
     *
     * @param entity
     * @return
     */
    void savePageMenuContent(PageMenuContent entity);

    /**
     * 查询菜单配置内容表详情
     *
     * @param id
     * @return
     */
    PageMenuContent viewPageMenuContent(String id);

    /**
     * 删除菜单配置内容表
     *
     * @param id
     */
    void deletePageMenuContent(String id);

    /**
     * 导出菜单配置内容表记录
     *
     * @param searchVO
     * @return
     */
    void exportPageMenuContent(PageMenuContentSearchVO searchVO, HttpServletResponse response);

    /**
     * 查询所有的菜单
     * @return
     */
    List<MenuXmlVO> selectAllMenusContent();

    /**
     * 通过name查询菜单
     * @return
     */
    List<PageMenuContent> getMenuContentByName(String name);

    /**
     * 同步xml页面到menu
     */
    void syncMenuByXml();

    /**
     * @Title: PageMenuContentService
     * @Description: TODO
     * @author TimBrian
     * @since 2021年11月5日 下午5:25:43
     * @param response
     * @param response
     */
	void downloadPageXmlList(HttpServletRequest request, HttpServletResponse response) throws IOException, HibaseException;
}
